home *** CD-ROM | disk | FTP | other *** search
/ Dynamic HTML Construction Kit / Dynamic HTML Construction Kit.iso / earthlink / nscomm / java40.jar / netscape / debug / Debugger.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  1.7 KB  |  76 lines

  1. package netscape.debug;
  2.  
  3. import java.io.IOException;
  4.  
  5. public class Debugger {
  6.    static DebugManager debugMgr;
  7.    static Process debuggerProcess;
  8.  
  9.    public static void debugBreak() {
  10.       if (launchDebugger()) {
  11.          if (debugMgr != null) {
  12.             debugMgr.debugBreak();
  13.          }
  14.  
  15.       }
  16.    }
  17.  
  18.    public static boolean uncaughtException(Thread var0, Throwable var1) {
  19.       if (!launchDebugger()) {
  20.          return false;
  21.       } else if (debugMgr != null) {
  22.          debugMgr.uncaughtException(var0, var1);
  23.          return true;
  24.       } else {
  25.          return false;
  26.       }
  27.    }
  28.  
  29.    public static void setDebugManager(DebugManager var0) {
  30.       SecurityManager var1 = System.getSecurityManager();
  31.       if (var1 != null) {
  32.          var1.checkSetFactory();
  33.       }
  34.  
  35.       debugMgr = var0;
  36.    }
  37.  
  38.    public static DebugManager getDebugManager() {
  39.       return debugMgr;
  40.    }
  41.  
  42.    public static void debuggerStartHook() {
  43.    }
  44.  
  45.    static boolean launchDebugger() {
  46.       if (debugMgr == null) {
  47.          SecurityManager.enablePrivilege("Debugger");
  48.          String var0 = System.getProperty("java.debugger");
  49.          if (var0 == null) {
  50.             return false;
  51.          }
  52.  
  53.          try {
  54.             Runtime var1 = Runtime.getRuntime();
  55.             debuggerProcess = var1.exec(var0);
  56.             synchronized(var1){}
  57.  
  58.             try {
  59.                try {
  60.                   var1.wait(10000L);
  61.                } catch (InterruptedException var8) {
  62.                   System.out.println(((Throwable)var8).toString());
  63.                }
  64.             } catch (Throwable var9) {
  65.                throw var9;
  66.             }
  67.          } catch (IOException var10) {
  68.             ((Throwable)var10).printStackTrace();
  69.             return false;
  70.          }
  71.       }
  72.  
  73.       return true;
  74.    }
  75. }
  76.